package nowcoder;

/**
 * @author wangxi created on 2021/5/16 18:53
 * @version v1.0
 *
 * 进制转换
 *
 * 给定一个十进制数M，以及需要转换的进制数N。将十进制数M转化为N进制数
 *
 * 注意：负数的进制转换和正数是一样的，只是最终转换完了要带上 负号
 */
public class SystemConvert {

    public static void main(String[] args) {
        SystemConvert obj = new SystemConvert();
        String solve = obj.solve(-10, 7);

        System.out.println(solve);
    }

    /**
     * SystemConvert
     * @param M int整型 给定整数
     * @param N int整型 转换到的进制
     * @return string字符串
     */
    public String solve (int M, int N) {
        // write code here
        if (M == 0) {
            return "0";
        }
        String s = "0123456789ABCDEF";
        boolean flag = false;
        if (M < 0) {
            flag = true;
            M = -M;
        }
        StringBuilder buffer = new StringBuilder();
        while (M != 0) {
            buffer.append(s.charAt(M%N));
            M = M/N;
        }
        if (flag) {
            buffer.append("-");
        }
        return buffer.reverse().toString();
    }
}
